Practical fix for securedrop-client#1025 Faster sync for all source #5204
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Status
Ready for review
Description of Changes
Fixes freedomofpress/securedrop-client#1025
Reimplements the
get_sources
call. On a staging system, direct calls using exposed port gave us the following numbers. Key size:1024
, all keys and fingerprints are in redis cache.1461 sources, 50 submissions, and 20 replies for each.
This is the pure python implementation (as in this PR).
I also tested the same logic in a complied Rust extension just to see the difference.
Python module written in Rust on mod_wsgi-express
Python module written in Rust on our apache2
Testing
How should the reviewer test this PR?
make staging
I am waiting for the CI :)
Deployment
Any special considerations for deployment? Consider both:
Checklist
If you made changes to the server application code:
make lint
) and tests (make test
) pass in the development containerIf you made changes to
securedrop-admin
:make -C admin test
) pass in the admin development containerIf you made changes to the system configuration:
If you made non-trivial code changes:
If you made changes to documentation:
make docs-lint
) passed locallyIf you added or updated a code dependency:
Choose one of the following: